/*----------------------------------------------------------------------------*\
|
|						Public Interface to Muse Technology
|
|							     www.Muse.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: DynamicTexture.h,v 1.2 2009/04/03 12:51:25 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#ifndef __DynamicTexture__
#define __DynamicTexture__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

#include <Texture.h>

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN

//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented dynamic texture interface.
	class API DynamicTexture : public Texture
	{		
	public:
		// constructor
		DynamicTexture( const Context* rc );
		
		// destructor
		virtual ~DynamicTexture();

		// load the data
		INLINE VOID load( const VOID* data, U32 size );

		// lock the data
		INLINE VOID lock( VOID** bits, I32* pitch, const RECT* rect = NULL );

		// unlock the data
		INLINE VOID unlock();

	private: 
		friend class Target;
	};	

	typedef MPtr<DynamicTexture>DynamicTexturePtr;

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __DynamicTexture__

//////////////////////////////////////////////////////////////////////////